Time partitioned processing systems are typically used for safety critical real time applications where critical tasks need to be guaranteed time to execute. The granularity at which time partitioning is applied differs among scheduling paradigms, where in some paradigms a number of tasks share a common time budget, and in other paradigms each task has an independent budget. For this disclosure, we will refer to such task(s) as a time partitioned entity or “TPE”. A TPE can be, for example, a 653 Partition which encompasses multiple tasks, or it can be a time partitioned RMA thread. Accordingly, such TPEs are allocated time periods with guaranteed processing time budgets in which they are executed. The budget for each TPE is established under worst case cache conditions and account for worst case code paths to ensure that they provide sufficient processing time for the TPE to complete the budgeted task with still some additional margin padding. However, TPEs often complete their budgeted task with time to spare within their allocated partition leaving slack time available. In fact, depending upon the hosted applications, sometimes large amounts of slack time remain in a partition after execution of the budgeted TPE is completed. In multi-core systems, budget padding can be extreme because execution time variation of TPEs tend to increase and worst case cross-core interference is assumed for memory interactions, real-time operating system critical sections assume worst case timing interactions between cores, etc. With these worst case estimates built into the budgets for executing budgeted TPEs, experience has shown that slack time available in a partition can sometimes exceed the amount of time that is both budgeted and used in a time-partitioned system. For this reason, many real time safety critical operating systems have a means to reallocate the slack processing time which results from budget underutilization, giving it to other TPEs which may have used their entire fixed budget and yet still desire more CPU time. It should be noted that design-related factors can contribute greatly to slack production. A TPE may have a repetitive work-load pattern which varies, causing it to use most of its budget in one frame but much less in another. Other TPEs may be highly modal, generating large amounts of slack for long periods of time while waiting on some external stimuli.
One problem that arises, however, with reallocating available slack to TPEs desiring use of this time is that total processor utilization can be pushed towards the capacity limits of the processor. Whereas a processor's thermal and power usage of a time partitioned system hosting a set of applications may be highly predictable or at least boundable based on regular usage patterns of trusted, high assurance software, when slack is allowed, thermal and power predictability can be compromised. A single low criticality slack consumer could drive CPU utilization to 100% indefinitely by consuming all available slack, perhaps even due to an application error. This scenario forces the system designer to either provide a worst-case thermal and power solution or forgo the benefits of slack scheduling. In addition to the processor simply running hotter and utilizing more power, thermal margins between the processor operating temperature and the local ambient environment, and/or the heat dissipating capacity of the processing system, are reduced. This reduces the thermal margin available to continue operation during an event that may quickly increase the temperature of the operating environment. In fact, if the thermal solution is not sized to accommodate continuous 100% CPU utilization during high ambient conditions, unbounded slack utilization can lead to a thermal overload of the processor so that the scheduling of non-critical tasks during slack time may compromise the ability of the system to execute the safety critical TPEs.
For the reasons stated above and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the specification, there is a need in the art for systems and methods for allocation of environmentally regulated slack.